import { db } from '../index';
import { users } from '../schema';
import bcrypt from 'bcrypt';
import { createId } from '@paralleldrive/cuid2';
import { eq } from 'drizzle-orm';

/**
 * 用户种子数据
 */
export async function runUserSeeds() {
  try {
    console.log('🔄 创建用户种子数据...');
    
    // 检查是否已存在管理员用户
    const existingAdmin = await db.select().from(users).where(eq(users.username, 'admin')).limit(1);
    
    if (existingAdmin.length === 0) {
      // 创建默认管理员用户
      const hashedPassword = await bcrypt.hash('admin123', 10);
      await db.insert(users).values({
        id: createId(),
        username: 'admin',
        email: 'admin@cx-ad.com',
        password: hashedPassword,
        role: 'admin',
        avatar: null,
        status: 'active',
        lastLoginAt: null
      });
      console.log('✅ 创建管理员用户: admin / admin123');
    } else {
      console.log('ℹ️ 管理员用户已存在，跳过创建');
    }
    
    // 检查是否已存在游客用户
    const existingGuest = await db.select().from(users).where(eq(users.username, 'guest')).limit(1);
    
    if (existingGuest.length === 0) {
      // 创建默认游客用户
      const guestPassword = await bcrypt.hash('guest123', 10);
      await db.insert(users).values({
        id: createId(),
        username: 'guest',
        email: 'guest@cx-ad.com',
        password: guestPassword,
        role: 'guest',
        avatar: null,
        status: 'active',
        lastLoginAt: null
      });
      console.log('✅ 创建游客用户: guest / guest123');
    } else {
      console.log('ℹ️ 游客用户已存在，跳过创建');
    }
    
  } catch (error) {
    console.error('❌ 用户种子数据创建失败:', error);
    throw error;
  }
}